home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-11-19 | 26.8 KB | 564 lines | [TEXT/ttxt] |
- **************************************************************
- ** Project:
- ** Mt.Everything cdev
- **************************************************************
- Font Monaco 9, Tabs at 3 spaces
- **************************************************************
- ** SCSI-Managing Control Panel by
- ** Horst Pralow
- ** All rights reserved
- ** © Horst Pralow, 1991/up to now
- **
- ** Changes History
- **************************************************************
-
- No changes history recorded for versions older than 1.0d8
-
- Version 1.0d8:
- Improved Error checking before trying to read data from
- a specific device. Astonishingly this sometimes causes
- the cdev to hang where it worked correctly on previous
- Versions.
- Version 1.0d9:
- 03/08/92
- Addressed the beforementioned problem. Added a call to
- TestUnitReady before trying to operate on the device.
- Added support for old style (Inside Macintosh Vol. IV)
- Partitioning scheme. Not tested yet. The cdev did
- definitly crash on such drives in the earlier versions.
- Version 1.0d9.1:
- 03/10/92
- Fixed problems with InsideMac vol IV style drives and
- revised partition info display. Now the partitioning
- scheme is shown when no single partition is
- selected.
- Version 1.0b1:
- 03/11/92
- Fixed problems during the mount phase and reload
- of a driver. Included a call to FlushDataCache
- on 68030 machines before calling the new driver.
- Version 1.0.b2:
- 04/17/92
- Added color support and changed the way the cdev
- does its initial display when first opened.
- Also removed the Option-Key from "Start/Stop-Unit"
- It now determines for the current id whether to
- Start or Stop the unit by calling TestUnitReady.
- Version 1.0b3:
- 04/26/92
- Improved handling of update events in main window
- (No more flicker when hitting an item)
- Added updatehandler for child dialogs.
- Ballon help implemented.
- Version 1.0b4:
- 05/01/92
- Improved user feedback on keyboard commands
- Added display of watch cursor for mount and start/stop
- Refined ModalFilter function for child dialogs:
- Return and Enter-keys are handled correct now.
- Multiple-driver bug addressed (testing will show if it
- was fixed). We now look for the ddType field to
- determine which driver to load. A corresponding bug
- in the CompareDrivers routine fixed. We now compare the
- Driver-name in the DCTLEntry^ with the driver loaded
- from disk and not with the one already im memory (this
- was of course pure bullshit).
- Version 1.0b5:
- 05/07/92
- Mount support for old style drivers added which expect
- a pointer to the device partition map (type TS) in A0
- on entry.
- Minor update bugs in main window fixed.
- Version 1.0b6:
- 05/13/92
- Added special case treatment for drivers like FWB's HDT
- bunch of drivers. These ones use a special stage one
- loader and so driver compare never worked. Added expand-
- dable resource of type 'Scas' which contains substrings
- to search for in case CompareDrivers failes. If this
- substring is found in the driver or loader (we can not
- know about it) we'll treat CompareDrivers successfull.
- We now pass a pointer to disk block 1 for all drivers in
- A0 on calling the driver. HDT drivers rely on this
- feature where as most drivers do not.
- Version 1.0b7: 05/25/92
- Added 'Options'-Button and a pre-version of the Options-
- Dialog. Only options-group "Stop-Options" works.
- Additional checking before accessing any device included.
- Stop-Options: On stop-unit we try to umnount all parti-
- tions by default now. If there are partitions busy then
- the ones umnounted will be remounted invisible for the
- user.
- Version 1.0b7.1:
- 05/31/92
- Added balloon help for Options Button and Options dialog
- Version 1.0b7.2:
- Stop-Unit with Auto-Unmount lost watch-cursor cause
- PBUnMount implicitely calls InitCursor. We now restore
- the wristwatch until the drive has stopped and returned
- completion.
- Version 1.0b7.3:
- Implemented mount option with Built-in SCSI driver.
- Modified driver to be compatible with old-style IM IV
- partitioning scheme.
- Version 1.0b7.4:
- Internal version / new bugs introduced
- Version 1.0b7.5:
- Pop-Up menus in main window introduced. They show all
- available HFS partitions on the selected drive.
- INIT for mounting Hotkey (without mounting function yet)
- Introduced. Communaction cdev/INIT via PPCToolbox in
- System 7.
- Minor bug fixes
- Version 1.0b7.6:
- PopUpMenus now selectivly mounts the choosen volume.
- Version 1.0b8:
- First version with working mount hotkey. Thus big leap
- in version numbering.
- Mount hotkey is not yet configurable. Default:
- Command-Control-M.
- Version 1.0b8.1:
- Changed the popup menu display to include the total
- volume size of each partition displayed. Also show a
- check mark for the partitons already mounted
- Version 1.0b8.2:
- Improved appearance on color monitors by using the users
- highlight color in certain places.
- Bug fixes according to crashes when using the popup menu
- feature.
- Version 1.0b8.3:
- 01/27/93
- Adding self test for Code-Movement. Remove Control-Track-
- king when deactivated.
- Version 1.0b8.4:
- 03/10/93
- SCSI-code totally rewritten to be more compact and
- also to address potential problems with Virtual Memory.
- If Virtual Memory is running we now hold all our buffers
- we use during a SCSI transaction.
- Finally: a method to configure the hotkey
- Animated cursor changed. Now Implemted via a VBL-Task
- Removed the option "Unmount only if Option-down". From my
- opinion this option doesn't make sense.
- Known glitches:
- Typos in help balloons. Also: Help balloon not changed
- to reflect the changes in the Options dialog.
- Some glitches in the display of the hotkey if it is one
- of the keypad keys. Still a need to propose the changes
- to the SCSI code to the INIT.
- Potential problems with the driver: Alhough the driver
- runs stable and reliable on virtually all tested drives
- there still are theoretical problems with virtual memory.
- I have tested the driver with VM and never run into
- problems but there might be difficulties using VM with
- MTE's built in driver and VM because the driver is not
- reentrant on an partion level. This will be fixed in the
- next ß-release.
- Another problem arises from the two SCSI busses of the
- Quadra 9xx family of Macs. I haven't found any documenta-
- tion yet how to distinguish between the two SCSI busses.
- so MTE still goes the old fashioned way to assume a
- single bus with ID in the range from 0 to 7.
- Version 1.0b8.5:
- 03/14/93
- Cosmetic fixes: Item size for displaying the hotkey chan-
- ged. Fixed the display of certain hotkeys (all F-keys
- on the USS Saratoga*, and others) which were not dis-
- played correctly. Fixed "Can't find partioning infor-
- mation" bug. Enhanced busy cursor routine now using an
- 'acur' resource. (Modify it if you like. MTE will use up
- to 10 amination frames defined in the 'acur' resource.
- Changed the file’s creator type to 'MΔEª'.
- Linked the INIT with a new version of Paul Mercer’s
- ShowInit to support color icon display at boot time.
- No major changes. The whole weekend was dedicated to my
- Porsche 914
- 03/19/93
- Updatet the INIT to share the same SCSI code with the
- cdev (eg. code being certified VM aware)
- Additional checking if A/UX is running. The cdev has
- always checked if _SCSIDispatch is implemented. On A/UX
- its documented not to be implemented. This worked fine in
- A/UX 2.0 and 2.01 (where SCSIProbe blindly crashed, haha)
- With A/UX 3.0 things have changed however: The trap is
- implemented!! But all it does is calling the SystemError
- function. So MTE crashed too. We now do an additional
- Gestalt and refuse to run if gestaltAUXVersion is any-
- thing but 0. Apple should have left things the way they
- used to be. There is no sense in implementing a trap just
- to call the bomb dialog (because a program would get
- there anyway if it tried to use that trap), but it makes
- checking and writing clean code a lot more difficult.
-
- 03/29/93
- Fixed some problems with the INIT which were introduced
- due to bug fixes to the THINK RSRCRuntime.lib I made
- according to a TechNote from Symantec. These led to
- crashes when the cdev tried to read the Init’s current
- settings. Now I have fixed Symantec’s fixes. These
- were nothing but another bug!
-
- 04/15/93
- New Version of the SCSI-driver included (V. 3.7)
- The driver now is completely reentrant thus addressing
- theoriticly possible problems with Virtual Memory. (On
- various test none of these problems arose, but were
- possible according to Apple information.) These problems
- are fixed now.
- For the Tech folks: The problem was when the driver
- served an I/O request from the File Manager a page-fault
- could occur and then the driver would have to be able
- to service the VM-Manager request to page logical memory
- without forgetting (i.e. overwriting) the context of the
- interrupted File I/O. For my opinion this hardly can
- happen in real life. There is one strong argument for my
- point of view (apart from practical experience): The SCSI
- Manager itself is single threaded in its current imple-
- mentation. So when the situation statet above (Page fault
- during SCSI I/O would appear, the Mac will bomb anyway,
- no matter how VM arawre and reentrant the driver is).
- Apple itself is aware of this problem and has the the
- Device Manager to hold all memory incorporated with the
- ongoing I/O transaction in advance. If the SCSI-Manager
- were reentrant (thus fully VM-Compatible) they would not
- have to do this. But for now we can be shure of: When
- the Mac crashes with VM its not my driver's fault, it
- might be the ROM.
- Changed behaviour of PopUp Menu in main dialog.
- With a removable media device in case there is no media
- in the device MtE displays a Menu telling "Insert Media"
- instead of just doing nothing
-
- Fixed a few typos in this file.
-
- Know outstanding bugs:
- Sometimes the display in the main window gets confused
- and draws some weird boxes instead of legable characters
- if MTE encounters an error in SCSI communication.
- Some strange things using Norton Utilities with MTE open
- were reported to me, but I could not reproduce the bug.
- It seems rather unlikely to me having any problems
- with a program like Norton. There is only one trap-patch
- in the code and this only gets activated when starting
- a SCSI driver just read from disk to be more friendly to
- old drivers who would cause a system crash under System
- 7 if they where loaded without the patch. These drivers
- still can be used with Mt. Everything (e.g. one of your
- ancient initialized cartridges you haven't used for
- years). After installing the driver the patch is removed
- immediately and no other program gets CPU time between
- installation and removal of the patch.
- Balloon help isn't fixed yet and still is somewhat
- sluggish.
-
- Last note: I encountered a bug on a IIci with an 14"
- Color Monitor set to 8 bit color depth: On this machine
- opening Mt. Everything and clicking on any SCSI item in
- the main window dropped me into MacsBug with an Illeagl
- Instruction error. Having the window deactiveted an then
- activated again, everything worked fine. I was unable
- to reproduce this error on any other machine. If you
- see this misbehaviour too, please give me a note, and
- I'll investigate on it.
-
- Possible future improvements:
- Additional Stop Unit option to eject the drives media on
- removable media devices.
- Support for large block size foramatted disk i.e. > 512
- bytes per block.
- Fix for the Check Disk Bug discussed recently in MacWeek.
- Implemtation of the INIT/cdev communication via Gestalt
- to be able to change INIT-settings without restart when
- running System 6 (6.0.4 at least)
-
- Final note:
- Please don't use the version of MTE found an the Sytem 7
- Utilities CD-ROM published recently. That version is
- fairly outdated.
- Version 1.0b8.6:
- 06/09/93
- Fixed a bug with the Cmd-Key Popup menu that caused
- the menu "Insert media" to appear with non-removable
- drives when the drive in question was stopped. The menu
- no longer appears with fixed disks.
- 06/14/93
- Fixed a nonproper if-then-else expression which caused
- the hotkey to fail when "Use Driver found on disk" was
- selected and the hotkey had to load that driver because
- it wasn't in RAM yet.
- Found a bug in the formac Manager software (Versions 4.0
- through 4.2 were tested) which caused my built-in
- driver to use wrong partition boundaries on formac-ini-
- tialized cartridge drives. The result is the "Disk is
- unreadable" dialog in the finder. This is because formac
- stores certain private data in the DataStart and DataCnt
- field of a partition map entry thus confusing my driver.
- The cdev however uses a more elaborated code to check
- for the location of partitions and displays correct
- information. This problem will probably be addressed in
- the next release. (Since we name Mt. Everything and not
- Mt. A Lot of Things.)
- Version 1.0b8.7:
- 25.6.1993
- Altered the pop-Up menu code so that the additional Item
- "All Volumes" only appears if multiple partitions con-
- taining HFS volumes are offline. Previously the item was
- shown on each drive that contained multiple partitions
- of whom at least one was offline.
- 06/27/1993
- Enhanced version of the SCSI-Driver. The new driver does
- some additional checking when identifying HFS-partitions.
- This should fix problems with formac's Version 4 remov-
- able drivers but it is a general reliability enhancement.
-
- Version 1.0b8.8:
- 07/21/1993
- The last enhancement of the driver introduced a severe
- bug that caused the driver to report a wrong partition
- size and to put false entries into the drive queue.
- This led to problems with Disk First Aid (it reported
- that the volume could not be read or that the volume is
- not an HFS Disk). Worse this bug could destroy all data
- on a drive if the user were to select the Erase Disk
- command in the Finder on one of the Volumes.
- SO DO NOT USE VERSION 1.0b8.7
- Fixed a bug that caused MtE to stop a drive even if one
- or more volumes on that drive were busy when the user
- has selected the Auto-Unmount and Close Driver options
- 07/23/1993
- Updated Balloon help
- 07/24/1993
- Changed the code in the info Dialog which displays the
- partitins on a drive. It used to display partitions in
- the order in which they are defined in the partition map
- map partition. But since the appearence of the list
- imposeses to show things in the order they are located on
- the driver I changed the code to do so.
- The info Dialog now gives more verbose info when an A/UX
- partition is selected. (This information is not always
- correct but uses the structures found on the disk as
- documented by Apple. The A/UX dp program shows the same
- incorrect information.)
- Version 1.0b9:
- 09/12/93
- Revamped the INIT code. Made it to squeeze 300 bytes of
- code. INITS should be as small as possible.
- Also changed the code for the options dialog slightly
- to make it more compact and more readable (at least
- for me).
- 11/01/93
- Finally a limited support for removable media eject:
- The Stop-Unit button now tells the drive to allow media
- removal before stopping the drive.
-
- Version 1.0b10:
- 12/12/93
- Fixed a bug in the popup - menu code that assigned a
- command key equivalent to a partitions menu if the
- volume name happened to contain a "/" character.
- Changed the appearence of the title Picture and its
- hilighting when clicked.
-
- Version 1.0b11:
- 12/26/93
- Revamped the appearence of the header Picture to fully
- support multiple Monitors with different PixelSizes to
- always display the best looking Pict even when the window
- scans multiple monitors.
- New feature: The Startup Disk is underlined with a Gray
- line. And you can set a different startup disk with the
- Boot Disk button. This roughly is the same as in the
- Startup Disk control panel.
-
- Version 1.0b12:
- 02/06/94
- Mt. Everything finally runs on A/UX 3.0.
- None of our snizzy features is available right now
- but at least the main window lists the connected drives
- Fixed a bug in the INIT code that caused the crossover
- icon we display in case of loading errors to be placed
- on the next free icon position rather then on top of ours
-
- Known bug: When selecting a specific partition from a
- device's pop-up menu then Mte will mount all Partitions
- of the device instead of only the requested one. This
- happens when Mte must install the driver for the device
- in order to mount any partition. Once the driver is
- installed the popup menu works as expected.
- 02/27/94
- Modified A/UX calls to use undocumented ioctl calls which
- work more reliable than the former attempt through
- /dev/gd
- 03/01/94
- The pop-up menu now mounts a specific partition from a
- drive even if the driver for that drive was not loaded
- when the user made the menu selection. (This fixes bug
- noted 6.2.94).
- 03/10/94
- The pop-up menu no longer changes the current scsi id
- if the mouse is released outside the menu.
- Revamped some segmentation issues of the INIT.
- 03/13/94
- Unix support is now fully implemented. At least the Mac
- portion of it. There is not (yet) a way to mount/umount
- Unix-File Systems. But since A/UX offers commands
- to do this it's not such a miss.
- There also is no Start/Stop when running UNIX cuz the
- Kernel wouldn't like it!
- The cdev has now been made multi-segment with all the
- A/UX stuff in its own seg since I was rapidly approaching
- the 32 K limit the linker insists on.
- Brand new About-Box! (this is a major feature in some
- commercial packages!)
- Version 1.0f1
- 03/29/94
- This is final candidate 1.
- Fixed several System 6 related bugs: The modifiers field
- in the event record passed to the cdev seems to contain
- garbage. So I test for modifier keys myself when
- running system 6. Fixed the dialog autopositioning code
- to produce (nearly) the same results when running sys 6
- as when running sys 7. i.e. the modal dialogs now appear
- at the same location where they would appear in system 7.
- Improved color support.
- 04/13/94
- Fixed some mistakes when displaying partition info for
- an A/UX partition (slice number and date). Note that
- still the dates may be incorrect. That is because the
- impplementation of A/UX does not behave as documented!
- Verson 1.0f2
- 05/01/94
- Fixed some typos and added items to balloon help.
- Fixed a bug in the SCSI-Transaction code which could
- cause an address-error on 68000 macs under certain condi-
- tions (Yep, twas a word operation on an odd address.
- MC68000s dont like this).
- Discovered problems with my old Mac SE which I sold years
- ago and which I had the pleasure to get my hands on
- recently. That machine is powered by an 16 MHz 020 card
- and Mt. Everything behaves bit strange. It did not crash
- but showed wrong information regarding wether a drive is
- ready or not. An earlier version which did much less
- error-checking than we do now seemed to work better.
- Since I had no opportunity to test I only guess my Test-
- Unit-Ready somehow fails on that machine. Is it the SE-
- ROM? Is it the accelerator card or its software? How does
- one tell without Macsbug installed?
- 05/04/94
- Added limited suport for DAT-Drives. Now Mt. Everyting is
- able to eject DAT cartridges by mouse click. I did it cuz
- I needed it. If anybody can urge strongly for a specific
- feature, I'll think about it. (No promises)
-
- During the meanwhilst [see Monty Python "The Life of
- Brian (soundtrack)" for further reference] while
- doing a total rebuild on my Porsche 914 (everything
- I didn't fix last winter) I started work on Mt. Every-
- thing 2. It's a total rewrite in C++ (for the sake of
- PowerPC portabilty, not that I like C++ that much.
- Quote: C++ isn't a standard. Its a moving
- target). Features will include: Resizable window, support
- for SCSI-Manager 4.3 (i.e. multiple SCSI busses), save-
- and printable device information with more info to be
- available. It's new, it's OOPs and it will eat lots more
- of your RAM and it will be System 7 only.
- 5/8/94
- Fixed a timout problem when ejecting a DAT tape. When the
- drive didin't manage to eject the tape within the sup-
- plied time the SCSI Manager would lock and the Mac would
- hang when doing a subsequent disk i/o.
- Version 1.0 (final to be released)
- 9/9/94
- After some month of delay due to the hot summer and my
- vacancies I discovered a bug while writing the documen-
- tation for MTE. It’s the Reload command (option Mount).
- This one did not check wether a drive was busy but rather
- did close an installed driver from a busy disk and in-
- stalled a new copy of the driver. It would do this even
- on the disk containing the boot volume or worse the
- Virtual Memory backing file! (shudder) Appearently none
- of the users tried to do this since I never received a
- bug report. But finally this one is fixed.
- 10/09/94
- After just another month being very busy in my job where
- I get paid for being busy I added some integrety checks
- to the code. Just in case… The documentation matures.
- 10/12/94
- Added a keyboars shortcut for Reload. Its Option-Shif-R
- 11/17/94
- Removed shortcut for Reload since its not compatible
- on international keyboards and one should use it rarely.
- Now the modal dialogs handle update events for background
- windows (at least for the cdev window)
- User documentation is ready.
- 02/01/95
- Version 1.0.1
- Fixed a noncrucial bug in the SCSI-Code and made some
- optimizations.
- Fixed some glitches in ballon help.
- 5/10/95
- Fixed some ugly typos and bad stylistics in the docu-
- mentation.
- Version 1.0.2
- 08/04/95
- Revamped mechanism to call popup-menu to fix some
- spurious crashes encountered while using the feature.
- No one did report on this bug but on my own machine
- problems occured frequently.
- 09/18/95
- In V. 1.0 I introduced some code to check for modifica-
- tions made on certain parts of Mt.E. This was due to
- the fact that in a german Mac magazine I once foumd a
- Control Panel which was a stolen early apha version of
- Mt.E that had been modified in a way to show a different
- "About" picture and a different author. I wasn ’t very
- pleased to see someone steal my work so I dicided to fix
- this once and for all. I introduced self checking code
- that verifies Mt. Everthing is still the same as it left
- my desk and would destroy the running copy if t found
- modifications that would not please me, the author. This
- has benefits and drawbacks: One of the benefits is a
- built-in virus check. If some virulent code tries to hook
- into Mt.E it will notice and warn you. The drawback of
- course is there are situations where other code modifies
- my code: OmegaSANE is an example. This resulted sometime
- to Mt.E reporting a modification to one of its resources
- and destroying itself where everything was perfectectly
- legal. The dog simply was a little too sharp. I revised
- this sceme to be more user friendly. Mt.E will no longer
- destroy itself but still will give you a warning alert
- in case it finds modifications to its own resources. It
- is now OmegaSANE compatible. Hackers still will have a
- time!
- Version 1.0.3
- 10/16/1995
- Ported code to compile with Universal Interfaces 2.1.
- Here we are back again on compatibility road!
- 10/18/1995
- Fixed some System 6 related problems in screen update
- and revamped parts of the overall appearance.
- Streamlined the code for Partition info dialog but its
- still a mess. This one really needs a rewrite!
- Disabled "Stop-Unit" command for A/UX. Was always inten-
- ded to be so but in fact wasn't.
- 10/22/1995
- Partition info now is more verbose with A/UX partitions
- In case multiple drivers are found on a disk, the default
- one now gets marked. SCSI Mgr 4.3 drivers now will be
- displayed as such.
- Fixed a bug in my UNIX SCSI-code which luckily was im-
- possible to ever show on any users machine but mine!
- 10/29/95
- Added styled display of SCSI standard conformance in main
- window. Made this feature switchable. Therefor redesigned
- the options dialog.
- 11/10/95 through 11/19/95
- Added an discussion about SCSI Manager 4.3 to documen-
- tation and overhauled the rest of it.
- **************************************************************
- *USS Saratoga was reported to be the code name of the
- Apple Extended Keyboard, just in case you didn't know
- **************************************************************
-
-
- ***END OF FILE***